1. Field of Invention
The present invention relates a pen-based computing device and in particular to the use of a partial ink layer.
2. Description of Related Art
A pen-based device, such as a PDA (personal data assistant) or a tablet based computer, uses an LCD display overlaid by a transparent touch screen. Other devices, such as smart phones or other intelligent devices, are becoming available and may use small displays and pen-base input. The touch screen is used to input the location of a pen, or stylus, when the pen touches the surface of the touch screen. When the pen comes in contact with the touch screen, the CPU contained within the PDA interprets the X and Y coordinates of the location of the pen and performs operations depending on where the pen is located. A PDA like device uses several methods of data input, clicking on “soft” buttons or icons on the display screen, handwriting recognition, and text input using the pen on the touch screen. Handwriting can be character based by entering one character at a time or more fully cursive where full words or phrases are entered at one time.
U.S. Pat. No. 6,212,297 B1 (Sklarew) is directed to a keyboard-less entry computer system, where a part of the computer screen is allocated to handwriting symbols while another part of the screen displays font symbols. In U.S. Pat. No. 5,881,169 (Henry, Jr.) a method and apparatus is directed to handwritten data entry into a computing device, where the display screen displays pen strokes in the character input area. U.S. Pat. No. 5,732,152 (Sakai et al.) is directed to a method and apparatus for handwritten data entry onto a display of a computer device. When characters are written into an area on the display, they are recognized by the device and drawn in the data entry area and also in a non-data entry area.
The most popular PDA devices use a character-based form of data entry known Grafitti™. The Grafitti alphabet uses a simplified shorthand version of letters and numbers that are intended to simplify the task of character recognition by the PDA device. In general the Grafitti characters comprise single simplified and unique strokes by the pen touching the touch screen. The user of the PDA learns the simplified alphabet, which allows the PDA to have an easier task interpreting the user input. This is quite important on a hand held device, which may have a low performance CPU to minimize power consumption and device cost.
It has been shown that handwriting recognition improves if the user has a visual feedback of the characters that he or she are writing. Therefore, it is desirable to display a pen trail or digital ink on the display screen as the user writes a character for input. The pen trail is temporary and after the user finishes the character stroke or a full cursive input, the “ink” disappears. Thus the “ink” is thought of as overlaying the main display image, and the system erases or hides the ink-layer when the input is complete.
If a pen trail were written to frame buffer memory, it would overwrite any pixel data lying “below” the ink; therefore, in order to not destroy the original displayed image, the system CPU may need to first save the underlying regular display image before writing the “ink”. The original image would need to be restored after the “ink” was erased. In order to save the original image (or perhaps just the portion that will be overwritten by ink), it must be stored somewhere else, either in off screen memory or perhaps elsewhere in free space in the system main memory. Assuming that sufficient memory space is available to store the original image, there will be an amount of time to store and retrieve the original image that can affect system performance.
Because the display of the “ink” is only momentary, it is desirable to save the memory space and code execution time that is necessary to save the underlying regular display image and then restore it later. The basic concept is to not disturb the main displayed image in the frame buffer, but instead to store the “ink” pixels in a separate area of memory, and have the display controller fetch pixels from either the display frame buffer or ink layer pixel storage, and display the appropriate pixel on the display. In this way, the original image is not actually overwritten in the frame buffer and need not be saved and restored. In the prior art, such an ink layer would be of the same dimensions as the whole main display image.
There are two distinct concepts to store the “ink” pixels and not disturb the main display. The first is a separate “Ink layer” in which to store the ink image pixels. This would consist of a separate area of memory to store the ink pixels. In addition, the ink pixels are treated differently than main display image pixels, in that ink layer pixels are either transparent (show the main image pixel below the ink layer rather than the ink pixel), or visible (show the ink pixel, and “obscure” or don't show the main image pixel below it). The second is a separate “overlay” layer, which like the ink layer stores pixels in a separate area of memory. Unlike an ink layer however, an overlay does not include a transparency feature. The overlay pixels act and behave like regular main display image pixels. Depending on whether or not the overlay is to be displayed at a particular location on the screen, the LCD controller basically either chooses pixels from the main image memory, or the overlay image memory and displays them at that point on the display. But like the ink layer, changing pixels in the overlay leaves main image pixels in the frame buffer undisturbed. The important difference is that the overlay is opaque, obscuring the whole main image below it.
For an ink layer, whether or not to show the underlying main image or the ink pixel must be determined on a pixel-by-pixel basis by examining the transparency bit. This means that for each pixel location on the screen, the LCD controller must fetch two pixels, one from main image frame buffer, and another from the ink layer. Only after that will one or the other pixel be output to the display since the transparency bit for each pixel effectively gates which pixel (main or ink) gets routed to the display. For an overlay, the presence of the overlay on top of the main image is predetermined by designating the starting address and the size of the overlay. Therefore, the display controller fetches the overlay pixels only when the point where the overlay begins and does not fetch the main image pixels again until a point on the screen where the overlay ends. The effect of allowing for a transparency bit results in a higher bandwidth required to draw the same amount of pixel locations on the display from frame buffer memory for an ink layer as compared to an overlay.